#include "../console/Tela.h"

Tela::Tela(Controlador *sys,  int ni)
{
	Sistema = sys;
	NumItens = ni;
	TelaItens = new string[ni];
}
Tela::Tela(const Tela &copia)
{
	TelaItens = new string[copia.NumItens];
	for(int i = 0; i < copia.NumItens; i++)
		TelaItens[i] = copia.TelaItens[i];
	NumItens = copia.NumItens;
	Titulo = copia.Titulo;
}
Tela::~Tela()
{
	delete [] TelaItens;
}

int Tela::GetNumItens(){
	return NumItens;
}

void Tela::SetTitulo(string titulo)
{
	Titulo = titulo;
}
void Tela::AdicionaItem(int op, string item)
{
	if(op > NumItens)
		{
			cerr << "Numero de opcao invalida!";
			return;
		}
		TelaItens[op] = item;
}

void Tela::Show()
{
	int largura = 0;
// Verificando a maior largura do menu
	for(int i = 0; i < NumItens; i++)
	{
		if( TelaItens[i].size() > (unsigned)largura)
			largura = TelaItens[i].size();
	}
	largura = ( (unsigned)largura < Titulo.size() ) ? Titulo.size() : largura;

	largura += 10;
	cout << endl;
	cout << "\t|" << setfill('-') << setw(largura+4) << "|" << endl;
	cout << "\t|" << setfill(' ') << setw(largura+4) << "|" << endl;
	cout << "\t|  " << right << setw(largura-9) << Titulo << setw(11) << "  |" << endl;
	cout << "\t|" << setfill(' ') << setw(largura+4) << "|" << endl;
	cout << left;
	for(int i = 0; i < NumItens; i++)
	{
		cout << "\t|  " << setw(3) << i+1 << ". " << setw(largura-4) << TelaItens[i] <<  "|"  << endl;
	}
	cout << "\t|  " << setfill(' ') << setw(3) << 0 << ". " << setw(largura-4) << "Sair" << "|" << endl;
	cout << right;
	cout << "\t|" << setfill(' ') << setw(largura+4) << "|" << endl;
	cout << "\t|" << setfill('-') << setw(largura+4) << "|" << endl;
}

